/**
 * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com).
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.springblade.modules.restaurant.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.TenantEntity;

import java.io.Serial;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 任务记录实体类
 *
 * @author Blade
 * @since 2025-01-21
 */
@Data
@TableName("restaurant_task_record")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "任务记录")
public class TaskRecord extends TenantEntity {

	@Serial
	private static final long serialVersionUID = 1L;
	/**
	 * 任务ID
	 */
	@Schema(description = "任务ID")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long taskId;
	/**
	 * 任务日期
	 */
	@Schema(description = "任务日期")
	private String taskTime;
	/**
	 * 任务名称
	 */
	@Schema(description = "任务名称")
	private String taskName;
	/**
	 * 区域ID
	 */
	@Schema(description = "区域ID")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long areaId;
	/**
	 * 区域名称
	 */
	@Schema(description = "区域名称")
	private String areaName;
	/**
	 * 用户ID
	 */
	@Schema(description = "用户ID")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long userId;
	/**
	 * 用户名
	 */
	@Schema(description = "用户名")
	private String userName;
	/**
	 * 任务图示例
	 */
	@Schema(description = "任务图示例")
	private String sampleGraph;
	/**
	 * 注意事项
	 */
	@Schema(description = "注意事项")
	private String announcements;
	/**
	 * 工作图片
	 */
	@Schema(description = "工作图片")
	private String userPicture;
	/**
	 * 工作建议
	 */
	@Schema(description = "工作建议")
	private String suggestion;
	/**
	 * 工作时间
	 */
	@Schema(description = "工作时间")
	private Date submitTime;
	/**
	 * 评分
	 */
	@Schema(description = "评分")
	private BigDecimal score;
	/**
	 * 评论
	 */
	@Schema(description = "评论")
	private String comment;
	/**
	 * 评论图
	 */
	@Schema(description = "评论图")
	private String commentPicture;
	/**
	 * 评论时间
	 */
	@Schema(description = "评论时间")
	private Date commentTime;
	/**
	 * 类型(0固定任务 1特定任务)
	 */
	@Schema(description = "类型(0固定任务 1特定任务)")
	private Integer type;
	/**
	 * 用餐类型 0 午餐 1 晚餐
	 */
	@Schema(description = "用餐类型 0 午餐 1 晚餐")
	private Integer timeType;
	/**
	 * 截止日期
	 */
	@Schema(description = "截止日期")
	private String deadline;
	/**
	 * 检查人ID
	 */
	@Schema(description = "检查人ID")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long inspectorId;
	/**
	 * 检查人名称
	 */
	@Schema(description = "检查人名称")
	private String inspectorName;

	/**
	 * 备注
	 */
	@Schema(description = "备注")
	private String remark;

	/**
	 * 驳回原因
	 */
	@Schema(description = "驳回原因")
	private String rejectReason;
	/**
	 * 驳回时间
	 */
	@Schema(description = "驳回时间")
	private Date rejectTime;

	/**
	 * 检查截止日期
	 */
	@Schema(description = "检查截止日期")
	private String inspectDeadline;
	/**
	 * 扣分原因
	 */
	@Schema(description = "扣分原因")
	private String deductPoints;
}
